package sample;

import java.util.Scanner;

class page
{
    int flag;//标志
    int block;//主存块号
    int disk;//在磁盘上的位置
    int dirty;//修改标志
    int time;//

}
public class a {
    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        Scanner input = new Scanner(System.in);
        page[] pagelist =new page[20];
        for(int i=0;i<20;i++)
        {
            pagelist[i]=new page();
        }
        pagelist[0].flag=1;
        pagelist[0].block=5;
        pagelist[0].disk= 9;
        pagelist[0].dirty=0;
        pagelist[0].time=0;
        pagelist[1].flag=1;
        pagelist[1].block=8;
        pagelist[1].disk= 10;
        pagelist[1].dirty=0;
        pagelist[1].time=0;
        pagelist[2].flag=1;
        pagelist[2].block=9;
        pagelist[2].disk= 11;
        pagelist[2].dirty=0;
        pagelist[2].time=0;
        pagelist[3].flag=1;
        pagelist[3].block=1;
        pagelist[3].disk= 17;
        pagelist[3].dirty=0;
        pagelist[3].time=0;

        int caozuo;
        int  w,p,q;
        int[] P =new int[4];
        P[0]=0;P[1]=1;P[2]=2;P[3]=3;
        System.out.print("-----------------------------------------\n");
        System.out.print("| 页号   标志   主存块号   在磁盘上的位置 |\n");
        System.out.print("| 0    1    5        011 |\n");
        System.out.print("| 1    1    8        012 |\n");
        System.out.print("| 2    1    9        013 |\n");
        System.out.print("| 3    1    1        021 |\n");
        System.out.print("| 4    0             022 |\n");
        System.out.print("| 5    0             023 |\n");
        System.out.print("| 6    0             121 |\n");
        System.out.print("-----------------------------------------\n");
        System.out.print(" 模拟分页式存储管理中硬件的地址转换和产生缺页中断 ");
        System.out.print("1. 操作 \n");
        System.out.print("2. 退出 \n");
        w= input.nextInt();
        caozuo=w;
        while(caozuo==1)
        {
            System.out.print(" 请输入指令的页号和单元号： \n");
            p= input.nextInt();
            q= input.nextInt();
            if (pagelist[p].flag == 1 )
            {
                System.out.printf("绝对地址 =%d\n",pagelist[p].block*128+q);
            }
            else
            {
                System.out.printf("%d ln号页缺页 \n",p);
            }
            System.out.print("1. 操作 \n");
            System.out.print("2. 退出 \n");
            w= input.nextInt();
            caozuo=w;

        }
    }
}
